// 导入模块
import nunjucks from "nunjucks";
// 导入写好的绝对路径模块
import { absAddress } from "../url/url.js";

// 创建中间件函数
function templates() {
  // 返回一个中间件（模板引擎 渲染函数）
  return async (ctx, next) => {
    ctx.render = (html, obj) => {
      // 获取页面文件的绝对路径
      const filePath = absAddress("../views");

      // 模版引擎配置（无缓存、监听）
      const env = nunjucks.configure(filePath, { noCache: true, watch: true });

      // 把渲染内容 响应给浏览器
      ctx.body = env.render(html, obj);
    };
    // 执行下一个中间件
    await next();
  };
}

// 暴露异步函数
export const template = templates;
